"""
stu_manager.py 学员管理模块，用于对学员对象进行增删改查之类的操作
模块中定义类studentmanager
类中的函数包括：内置和自定义的函数
自定义函数：根据具体需求，增删改查等功能
"""
from ch8.student import student


class studentmanager:
    def  __init__(self):
        # 学员对象保存在列表中
        self.stu_list = []
        #自定义函数，程序入口函数
    def run(self):
        """
        循环操作:
        显示功能界面
        用户输入
        根据用户输入，进入不同的功能
        :return:
        """
        while True:
            #1.显示功能界面菜单
            self.menu()
            #2.让用户输入选择
            num = input('请输入您需要的功能界面')
            # 3.根据用户输入进入不同功能函数
            if num =='1':
                #调用函数
                self.add_stu()
            elif num == '2':
                self.del_stu()
            elif num == '3':
                self.modify_stu()
            elif num == '4':
                self.search_stu()
            elif num == '5':
                self.show()
            elif num == '6':
                self.save_stu()
            elif num == '7':
                break
            else:
                print('输入有误')



    def menu(self):
        print('-'*20)
        print('请选择功能菜单：')
        print('1:添加学员')
        print('2:删除学员')
        print('3:修改学员')
        print('4:搜索学员')
        print('5:显示所有学员')
        print('6:保存学员信息')
        print('7:退出系统')
        print('-'*20)
    def add_stu(self):
        """
        添加功能:让用户输入学员信息，将其添加到列表中
        :return:
        """
        print('-----添加功能------')
        name = input('请输入学员姓名: ')
        gender = input('请输入学员性别: ')
        tel = input('请输入学员电话: ')
        stu = student(name,gender,tel)
        self.stu_list.append(stu)
        print('添加成功')

    def del_stu(self):
        del_name=input('请输入您要删除的学员姓名: ')
        for i in self.stu_list:
            if i.name == del_name:
                self.stu_list.remove(i)
                print('删除成功')
                break
        else:
            print('查无此人')

    def modify_stu(self):
        modify_name=input('请输入要修改的学员姓名:')
        for i in self.stu_list:
            if i.name==modify_name:
                i.name = input('请输入学员姓名: ')
                i.gender = input('请输入学员性别: ')
                i.tel = input('请输入学员电话: ')
                print(f'修改成功,姓名{i.name},性别{i.gender},手机号{i.let}')
                break
        else:
            print('查无此人')
    def search_stu(self):
        pass

    def show(self):
        pass

    def save_stu(self):
        """
        保存学员信息（列表）到文件
        :return:
        """
        with open('data.txt','w') as f:
            #列表信息保存在列表中,列表中每个元素都是一个学员对象
            #直接取出列表元素是学员对象的内存地址
            new_list=[e.__dict__ for e in self.stu_list]
            f.write(str(new_list))